home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / oh_towns / space / momonger.bas < prev   
BASIC Source File  |  1991-10-18  |  10KB  |  196 lines

  1. 1000 '‡‡‡‡‡‡      -S-P-A-C-E-   も も ん が ぁ     ‡‡‡‡‡‡
  2. 1010 '‡‡‡‡‡‡         PROGRAMMED BY SHINYA MUKAI.        ‡‡‡‡‡‡
  3. 1020 '‡‡‡‡‡‡   (C)1990 COMTRONICS,ALL RIGHTS RESERVED.  ‡‡‡‡‡‡
  4. 1030 CLEAR:DEFINT A-V,Y,Z:DIM SGR(12426),SDW(7051),PAT(256)
  5. 1040 TOP=120:PLAY OFF:COLOR 7,0:CLS
  6. 1050 SCREEN@ 0:DEF SPRITE 3:SCREEN@ 1:SPRITE ON:SPRITE SCREEN 1
  7. 1060 LOAD@"Q:\FJ\MSG\ETC\GR_F.SND",SGR
  8. 1070 W&=VARPTR(SGR(0)):POKE W&+24,2000,2
  9. 1080 LOAD@"Q:\FJ\MSG\EMOTION\DOWA_F.SND",SDW
  10. 1090 W&=VARPTR(SDW(0)):POKE W&+24,1900,2
  11. 1100 '背景
  12. 1110 PX=0:PASTEL 40:CIRCLE(0,120),72,7,1.7!,,,F
  13. 1120 LX=RND*5
  14. 1130 FOR I=0 TO LX
  15. 1140 LINE(0,PX+I)-(80,PX+I),AND,[I*50,0,I*50]
  16. 1150 LINE(0,PX+2*LX-I)-(80,PX+2*LX-I),AND,[I*50,0,I*50]
  17. 1160 NEXT
  18. 1170 PX=PX+2*LX:IF PX<240 THEN 1120
  19. 1180 FOR I=0 TO 8:CIRCLE(0,120),80-I,[240,100,200],1.7!,,,F,PASTEL:NEXT
  20. 1190 LINE(0,120)-(319,120),PSET,[180,100,180]
  21. 1200 FOR I=0 TO 140:FOR J=0 TO 200-I STEP 8
  22. 1210 PSET(RND*320,120+RND*I-I/2),[200-RND*I,200-I,200-RND*I]
  23. 1220 NEXT:NEXT
  24. 1230 *タイトル
  25. 1240 DEF SPRITE 99,0:REM CD PLAY 2
  26. 1250 FOR I=0 TO 15:LINE(90,I)-(170,I),PSET,[0,I*8+80,0]:NEXT
  27. 1260 SYMBOL(90,0),"ももんがぁ",1,1,[220,255,255],,,5
  28. 1270 FOR I=0 TO 4
  29. 1280 GET@A(90+I*16,0)-(90+I*16+15,15),PAT:DEF SPRITE 0,I*4,PAT,1
  30. 1290 DEF SPRITE 1,I*4,(220-I*50,20),I*4:SPRITE 0,I*4,1:SPRITE 3,I*4,1
  31. 1300 NEXT
  32. 1310 LINE(90,0)-(170,15),PSET,0,BF
  33. 1320 PLAY OFF:PLAY"T120V4O3@64{CDEFGAB>CDEFGAB>C}4"
  34. 1330 SYMBOL(80,70),"SPACE",2,.8!,6,,XOR,19
  35. 1340 FOR I=0 TO 140:FOR J=0 TO 4:SPRITE 6,J*4,0,1:NEXT:NEXT
  36. 1350 FOR I=0 TO 4:SPRITE 3,I*4,0:NEXT
  37. 1360 FOR I=0 TO 70:FOR J=0 TO 4:SPRITE 6,J*4,J-2,-1:NEXT:NEXT
  38. 1370 SYMBOL(95,180),"(C)1990 COMTRON",1,.5!,5,,XOR,1
  39. 1380 IF PTRIG(1)=0 THEN 1380
  40. 1390 SYMBOL(80,70),"SPACE",2,.8!,6,,XOR,19
  41. 1400 SYMBOL(95,180),"(C)1990 COMTRON",1,.5!,5,,XOR,1:REM CD PAUSE
  42. 1410 FOR I=0 TO 25:FOR J=0 TO 4:SPRITE 6,J*4,6*SIN(J),6*COS(J):NEXT:NEXT
  43. 1420 'キャラクター読み込み
  44. 1430 RESTORE 2240:DEF SPRITE 99,0
  45. 1440 FOR I=0 TO 7:FOR J=0 TO 63
  46. 1450 READ W&:IF W&=>32767 THEN W&=W&-65536
  47. 1460 PAT(J)=W&:NEXT:DEF SPRITE 0,I,PAT,0:NEXT
  48. 1470 DEF SPRITE 0,8,PAT,0
  49. 1480 'メイン ルーチン
  50. 1490 FOR I=4 TO 8:DEF SPRITE 1,I,(120,100),6:SPRITE 0,I,1:NEXT
  51. 1500 DEF SPRITE 1,0,(112,130),0,1,2:SPRITE 0,0,1
  52. 1510 DEF SPRITE 1,2,(128,130),2,1,2:SPRITE 0,2,1
  53. 1520 FOR I=0 TO 4:X(I)=1-2*RND:Y(I)=-1:Z(I)=I*4.2!:DM(I)=0:NEXT
  54. 1530 PLAY OFF:RESTORE 1870:P=10
  55. 1540 A$="T152%S4/4Q8@68%CC2"
  56. 1550 PLAY"V13O1L8"+A$,"V6O2L8Q8"+A$,"V4O5L8"+A$,"V10O3L16"+A$
  57. 1560 MISS=0:TIME$="00:00:00"
  58. 1570 FOR I=0 TO 4
  59. 1580 SP=I+4
  60. 1590 IF DM(I)<>0 THEN DM(I)=DM(I)-1:IF DM(I)=0 THEN 1700 ELSE 1620
  61. 1600 IF Z(I)=10 THEN PAT=6 ELSE IF Z(I)=16 THEN PAT=5 ELSE 1620
  62. 1610 SPRITE 1,SP,PAT
  63. 1620 SPRITE 6,SP,(X(I)+XI)*Z(I),Y(I)*Z(I)
  64. 1630 Z(I)=Z(I)+1
  65. 1640 IF DM(I)<>0 THEN 1720
  66. 1650 IF Z(I)<20 THEN 1720
  67. 1660 IF Y(I)<>0 THEN 1700
  68. 1670 AX=SPRITE(SP,6):IF AX<102 OR AX>140 THEN 1700
  69. 1680 IF F=1 THEN PCMPLAY SDW,127 ELSE PCMPLAY SGR,127
  70. 1690 MISS=MISS+1:DM(I)=10:SPRITE 1,SP,4:GOTO 1720
  71. 1700 X(I)=1-RND*2:Y(I)=1-RND*2:Z(I)=1:DM(I)=0
  72. 1710 DEF SPRITE 1,SP,(120+X(I)*20,120+20*Y(I)),7:SPRITE 0,SP,1
  73. 1720 NEXT
  74. 1730 IF MISS>2 THEN *ゲームオーバー
  75. 1740 IF PAD(1)=3 AND F<>1 THEN XI=-.3!:F=1:GOSUB 1830:GOTO 1770
  76. 1750 IF PAD(1)=7 AND F<>2 THEN XI=.3!:F=2:GOSUB 1850:GOTO 1770
  77. 1760 IF PAD(1)=0 THEN XI=0:F=0
  78. 1770 PC=PLAY(1):IF PC=P THEN 1570 ELSE P=PC
  79. 1780 READ P1$,P2$,P3$,P4$
  80. 1790 IF P1$="L" THEN RESTORE 1870:GOTO 1780
  81. 1800 PLAY P1$,P2$,P3$,P4$
  82. 1810 GOTO 1570 
  83. 1820 '右ももんがぁ表示
  84. 1830 SPRITE 3,0,2:SPRITE 1,0,2:SPRITE 3,2,2:SPRITE 1,2,0:RETURN 
  85. 1840 '左ももんがぁ表示
  86. 1850 SPRITE 3,0,0:SPRITE 1,0,0:SPRITE 3,2,0:SPRITE 1,2,2:RETURN 
  87. 1860 'BGMデータ   ( TITLE / CHAKA POKO )
  88. 1870 DATA <@123C>@121C<@123C>@121C<@123C>L16@121C<@123CRC>L8@121C
  89. 1880 DATA @113>CG<G>GCL16<BA8AL8G
  90. 1890 DATA @100CGFEG8.F8.G
  91. 1900 DATA V10@59%LR8CCCCCCV2@68%RG2
  92. 1910 DATA <@123C>@121C<@123C>@121C<@123C>L16@121C<@123CRC>L8@121C
  93. 1920 DATA E>A<A>A<AL16GA8AL8B
  94. 1930 DATA L16GEB8BEGEL8BAL16CDEFL8
  95. 1940 DATA V10@59R8%RCCCCCCV2@68%LA2
  96. 1950 DATA L,O,O,P
  97. 1960 *ゲームオーバー
  98. 1970 TM$=RIGHT$(TIME$,5)
  99. 1980 SYMBOL(100,50),"TIME "+TM$,1,1.5!,[250,130,130],,XOR,17
  100. 1990 IF PLAY(2)=-1 THEN 1990
  101. 2000 PLAY OFF
  102. 2010 PLAY"T120V12@6O4L16","T120V10@114O3L16","T120V6@126O4L8"
  103. 2020 PLAY"EFGRFRDERCDRC4","CC8CE8E8DD8DC4","R%RC<R%LGR%RG>%CC4"
  104. 2030 FOR I=0 TO 23:FOR J=0 TO 1
  105. 2040 SYMBOL(I*4,80),"GAME OVER",1,1,6,,XOR,,23-I
  106. 2050 NEXT:NEXT
  107. 2060 SYMBOL(92,80),"GAME OVER",1,1,6,,XOR,1
  108. 2070 LAP=VAL(RIGHT$(TM$,2))+VAL(LEFT$(TM$,2))*60
  109. 2080 IF LAP<TOP THEN 2180
  110. 2090 TOP=LAP
  111. 2100 IF PLAY(0)=-1 THEN 2100
  112. 2110 A$="T150V10@78O4L16":PLAY OFF:PLAY A$,A$,A$,A$
  113. 2120 PLAY"G8.GGGA2.","%LC8.CCCD2.","%RE8.EEEF+2.","V5O3@27{CCCCCC}4.A2."
  114. 2130 WHILE PTRIG(1)=0
  115. 2140 FOR I=1 TO 2
  116. 2150 SYMBOL(93,175),"SET A NEW RECORD!",1,1,[250,250,180],,XOR,1
  117. 2160 NEXT
  118. 2170 WEND
  119. 2180 TRG=PTRIG(1):IF TRG=0 THEN 2180
  120. 2190 SYMBOL(92,80),"GAME OVER",1,1,6,,XOR,1
  121. 2200 SYMBOL(100,50),"TIME "+TM$,1,1.5!,[250,130,130],,XOR,17
  122. 2210 IF TRG=4 THEN 1490
  123. 2220 FOR I=0 TO 8:DEF SPRITE 1,I,(0,0),I:NEXT:GOTO *タイトル
  124. 2230 REM SPRITE(1) No00   ももんがぁ左上 
  125. 2240 DATA &H0000, &H0000, &HDDD5, &H000D, &H0000, &H0000, &HDDD0, &HDDDD
  126. 2250 DATA &H0000, &H0000, &HDD00, &HDDDD, &H0000, &H0000, &HD500, &HDDDD
  127. 2260 DATA &H0000, &H0000, &HDD00, &HDDDD, &H0000, &HDD00, &HDDD5, &HDDDD
  128. 2270 DATA &H0000, &HDDDD, &HDDDD, &HDDDD, &H0000, &H5DD5, &HDDDD, &HDDDD
  129. 2280 DATA &H0000, &H5550, &H555D, &H5555, &H0000, &H0000, &HDDD5, &HDDDD
  130. 2290 DATA &HD700, &H5DDD, &HDDDD, &HDDDD, &HD000, &H5DDD, &HDDDD, &HDDDD
  131. 2300 DATA &HD000, &HD5DD, &HDDDD, &HDDDD, &H0000, &HD5DD, &HDDDD, &HDDDD
  132. 2310 DATA &H0000, &HDD5D, &HDDDD, &HDDDD, &H0000, &HDD00, &HDDDD, &HDDDD
  133. 2320 REM SPRITE(1) No01    ももんがぁ左下    
  134. 2330 DATA &H0000, &HDD00, &HDDDD, &HDDDD, &H0000, &HDDD0, &HDDDD, &HDDDD
  135. 2340 DATA &H0000, &HDDD0, &HDDDD, &HDDDD, &H0000, &HDDD0, &HDDDD, &HDDDD
  136. 2350 DATA &H0000, &HDDD5, &HDDDD, &HDDDD, &H0000, &HDDD5, &HDDDD, &HDDDD
  137. 2360 DATA &HD000, &HDDD5, &HDDDD, &HDDDD, &HDD00, &HDDD5, &HFDDD, &HFFFF
  138. 2370 DATA &HDD00, &HDDD5, &HFDDD, &HFFFF, &HDDD0, &HDDD5, &HFFFD, &HFFFF
  139. 2380 DATA &HDDD0, &HDDD5, &HFFFF, &HFFFF, &HDDD0, &HDDD5, &H00FF, &H0000
  140. 2390 DATA &HDDD0, &HDDD0, &H000F, &H0000, &H0DD7, &H0DD0, &H0000, &H0000
  141. 2400 DATA &H0070, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
  142. 2410 REM SPRITE(1) No02    ももんがぁ右上
  143. 2420 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
  144. 2430 DATA &H00DD, &H0000, &H0000, &H0000, &H0DDD, &H0000, &H0000, &H0000
  145. 2440 DATA &HDDDD, &H0000, &H0000, &H0000, &HD1DD, &H0000, &H0000, &H0000
  146. 2450 DATA &HD1DD, &H0000, &H0000, &H0070, &HDDDD, &H000D, &HDDD0, &H000D
  147. 2460 DATA &H5DDD, &HD005, &HDDDD, &H000D, &HD555, &HDDDD, &HDDDD, &H0000
  148. 2470 DATA &HDDDD, &HDDDD, &HFFDD, &H0000, &HDDDD, &HDDDD, &H0FDD, &H0000
  149. 2480 DATA &HDDDD, &HDDDD, &H0FFD, &H0000, &HDDDD, &HDDDD, &H0FFD, &H0000
  150. 2490 DATA &HDDDD, &HDDDD, &H0FFF, &H0000, &HDDDD, &HDDDD, &H0FFF, &H0000
  151. 2500 REM SPRITE(1) No03    ももんがぁ右下
  152. 2510 DATA &HDDDD, &HDDDD, &H0FFD, &H0000, &HDDDD, &HDDDD, &H0FDD, &H0000
  153. 2520 DATA &HDDDD, &HDDDD, &H0DDD, &H0000, &HDDDD, &HDDDD, &HDDDD, &H0000
  154. 2530 DATA &HDDDD, &HDDDD, &HDDDD, &H000D, &HDDDD, &HDDDD, &HDDDD, &H00DD
  155. 2540 DATA &HDDDD, &HDDDD, &HDDDD, &H0DDD, &HDDDD, &HDDDD, &HDDDD, &H7DDD
  156. 2550 DATA &HFFFF, &HDDDF, &HDDDD, &H0DDD, &HFFFF, &HFFFF, &HFFFF, &H70FF
  157. 2560 DATA &H000F, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
  158. 2570 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
  159. 2580 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
  160. 2590 REM SPRITE(1) No04    砕けた岩
  161. 2600 DATA &H000A, &HAA00, &H0002, &H222A, &H0028, &H2220, &HA002, &H222A
  162. 2610 DATA &H0000, &H2200, &H2002, &H2822, &H0000, &H2000, &H0002, &H0822
  163. 2620 DATA &H00AA, &H0000, &H0000, &H0220, &H0222, &H2AA0, &H2A00, &H0000
  164. 2630 DATA &H0222, &H82A0, &H8202, &H0000, &H0820, &H2220, &H0000, &H22A0
  165. 2640 DATA &H0000, &H0000, &H0000, &H8000, &H0000, &H0000, &H002A, &H0020
  166. 2650 DATA &H0000, &H0000, &H0000, &H0080, &H2A00, &H0000, &H0000, &H0000
  167. 2660 DATA &H8200, &HA000, &H002A, &H02A0, &H000A, &HA000, &H0222, &H0820
  168. 2670 DATA &H0082, &H2000, &H0882, &H0000, &H0000, &H0000, &H0822, &H0000
  169. 2680 REM SPRITE(1) No05    岩(大)
  170. 2690 DATA &H0000, &H2222, &H2222, &H0002, &HA000, &H2222, &H222A, &H0022
  171. 2700 DATA &H2A00, &HA222, &H8822, &H0088, &H2AA0, &H2A22, &H8222, &H0088
  172. 2710 DATA &H22AA, &H2222, &H2222, &H0888, &H2AAA, &H2222, &H2222, &H2222
  173. 2720 DATA &HA222, &H222A, &H2222, &H2222, &H2222, &H2222, &H2222, &H2888
  174. 2730 DATA &H2AA2, &H2222, &H8222, &H2288, &H2222, &H2222, &H8222, &H2288
  175. 2740 DATA &H2220, &H2222, &H8822, &H2228, &H2220, &H2882, &H8882, &H0288
  176. 2750 DATA &H2220, &H2288, &H8882, &H0000, &H8200, &H2288, &H8822, &H0000
  177. 2760 DATA &H8000, &H2228, &H0222, &H0000, &H0000, &H2228, &H0022, &H0000
  178. 2770 REM SPRITE(1) No06    岩(中) 
  179. 2780 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
  180. 2790 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H2200, &H02A2, &H0000
  181. 2800 DATA &H0000, &H22A0, &H882A, &H0000, &H0000, &HA22A, &H8222, &H0000
  182. 2810 DATA &HA000, &H22AA, &H2222, &H0002, &H2000, &H2222, &H2222, &H0002
  183. 2820 DATA &H0000, &H222A, &H8822, &H0002, &H2000, &H2222, &H2882, &H0002
  184. 2830 DATA &H2000, &H2222, &H0882, &H0000, &H0000, &H2822, &H0088, &H0000
  185. 2840 DATA &H0000, &H2880, &H0002, &H0000, &H0000, &H2280, &H0000, &H0000
  186. 2850 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
  187. 2860 REM SPRITE(1) No07    岩(小) 
  188. 2870 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
  189. 2880 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
  190. 2890 DATA &H0000, &H2200, &H0002, &H0000, &H0000, &HA2A0, &H0008, &H0000
  191. 2900 DATA &H0000, &H22A0, &H0022, &H0000, &H0000, &H8220, &H0022, &H0000
  192. 2910 DATA &H0000, &H22A0, &H0028, &H0000, &H0000, &H2820, &H0000, &H0000
  193. 2920 DATA &H0000, &H0200, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
  194. 2930 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
  195. 2940 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
  196.